
struct1.o:     file format elf64-littleaarch64


Disassembly of section .text:

0000000000000000 <main>:
	short flag;
	dataset data[6];
}frame;

int main(void)
{
   0:	a9b07bfd 	stp	x29, x30, [sp, #-256]!
   4:	910003fd 	mov	x29, sp
	int i, j, k;
	char *pcr;
	
	frame *pfr;
	
	printf("struct size %d\n", sizeof(pfr));
   8:	90000000 	adrp	x0, 0 <main>
   c:	91000000 	add	x0, x0, #0x0
  10:	d2800101 	mov	x1, #0x8                   	// #8
  14:	94000000 	bl	0 <printf>
	
	for (i = 0; i < 100; i++) {
  18:	b900ffbf 	str	wzr, [x29, #252]
  1c:	1400000b 	b	48 <main+0x48>
		data[i] = i + 1;	// 赋值
  20:	b940ffa0 	ldr	w0, [x29, #252]
  24:	53001c00 	uxtb	w0, w0
  28:	11000400 	add	w0, w0, #0x1
  2c:	53001c02 	uxtb	w2, w0
  30:	b980ffa0 	ldrsw	x0, [x29, #252]
  34:	910043a1 	add	x1, x29, #0x10
  38:	38206822 	strb	w2, [x1, x0]
	for (i = 0; i < 100; i++) {
  3c:	b940ffa0 	ldr	w0, [x29, #252]
  40:	11000400 	add	w0, w0, #0x1
  44:	b900ffa0 	str	w0, [x29, #252]
  48:	b940ffa0 	ldr	w0, [x29, #252]
  4c:	71018c1f 	cmp	w0, #0x63
  50:	54fffe8d 	b.le	20 <main+0x20>
	}
	
	k = 0;
  54:	b900f7bf 	str	wzr, [x29, #244]
	for (i = 0; i < 6; i++) {
  58:	b900ffbf 	str	wzr, [x29, #252]
  5c:	14000027 	b	f8 <main+0xf8>
		for (j = 0; j < 16; j++) {
  60:	b900fbbf 	str	wzr, [x29, #248]
  64:	1400001d 	b	d8 <main+0xd8>
			ft.data[i].data[j] = data[k];
  68:	b980f7a0 	ldrsw	x0, [x29, #244]
  6c:	910043a1 	add	x1, x29, #0x10
  70:	38606823 	ldrb	w3, [x1, x0]
  74:	b980fba2 	ldrsw	x2, [x29, #248]
  78:	b980ffa1 	ldrsw	x1, [x29, #252]
  7c:	aa0103e0 	mov	x0, x1
  80:	d37df000 	lsl	x0, x0, #3
  84:	8b010000 	add	x0, x0, x1
  88:	d37ff800 	lsl	x0, x0, #1
  8c:	910403a1 	add	x1, x29, #0x100
  90:	8b000020 	add	x0, x1, x0
  94:	8b020000 	add	x0, x0, x2
  98:	d1400400 	sub	x0, x0, #0x1, lsl #12
  9c:	2a0303e1 	mov	w1, w3
  a0:	393de801 	strb	w1, [x0, #3962]
			printf("%4d", data[k]);
  a4:	b980f7a0 	ldrsw	x0, [x29, #244]
  a8:	910043a1 	add	x1, x29, #0x10
  ac:	38606820 	ldrb	w0, [x1, x0]
  b0:	2a0003e1 	mov	w1, w0
  b4:	90000000 	adrp	x0, 0 <main>
  b8:	91000000 	add	x0, x0, #0x0
  bc:	94000000 	bl	0 <printf>
			k++;
  c0:	b940f7a0 	ldr	w0, [x29, #244]
  c4:	11000400 	add	w0, w0, #0x1
  c8:	b900f7a0 	str	w0, [x29, #244]
		for (j = 0; j < 16; j++) {
  cc:	b940fba0 	ldr	w0, [x29, #248]
  d0:	11000400 	add	w0, w0, #0x1
  d4:	b900fba0 	str	w0, [x29, #248]
  d8:	b940fba0 	ldr	w0, [x29, #248]
  dc:	71003c1f 	cmp	w0, #0xf
  e0:	54fffc4d 	b.le	68 <main+0x68>
		}
		printf("\n");
  e4:	52800140 	mov	w0, #0xa                   	// #10
  e8:	94000000 	bl	0 <putchar>
	for (i = 0; i < 6; i++) {
  ec:	b940ffa0 	ldr	w0, [x29, #252]
  f0:	11000400 	add	w0, w0, #0x1
  f4:	b900ffa0 	str	w0, [x29, #252]
  f8:	b940ffa0 	ldr	w0, [x29, #252]
  fc:	7100141f 	cmp	w0, #0x5
 100:	54fffb0d 	b.le	60 <main+0x60>
	}
	
	pcr = (char *)&ft;	// 指向结构首地址
 104:	9101e3a0 	add	x0, x29, #0x78
 108:	f90077a0 	str	x0, [x29, #232]
	ft.flag = 0x00;
 10c:	7900f3bf 	strh	wzr, [x29, #120]
	for (i = 0; i < 120; i++)
 110:	b900ffbf 	str	wzr, [x29, #252]
 114:	1400000c 	b	144 <main+0x144>
		printf("%5d", *pcr++);	// 打印出乱数据是因为结构中还有另外两个成员.	2012/11/1
 118:	f94077a0 	ldr	x0, [x29, #232]
 11c:	91000401 	add	x1, x0, #0x1
 120:	f90077a1 	str	x1, [x29, #232]
 124:	39400000 	ldrb	w0, [x0]
 128:	2a0003e1 	mov	w1, w0
 12c:	90000000 	adrp	x0, 0 <main>
 130:	91000000 	add	x0, x0, #0x0
 134:	94000000 	bl	0 <printf>
	for (i = 0; i < 120; i++)
 138:	b940ffa0 	ldr	w0, [x29, #252]
 13c:	11000400 	add	w0, w0, #0x1
 140:	b900ffa0 	str	w0, [x29, #252]
 144:	b940ffa0 	ldr	w0, [x29, #252]
 148:	7101dc1f 	cmp	w0, #0x77
 14c:	54fffe6d 	b.le	118 <main+0x118>
		
	//putchar(0xd);
	printf("\n");
 150:	52800140 	mov	w0, #0xa                   	// #10
 154:	94000000 	bl	0 <putchar>
		
	return 0;
 158:	52800000 	mov	w0, #0x0                   	// #0
}
 15c:	a8d07bfd 	ldp	x29, x30, [sp], #256
 160:	d65f03c0 	ret
